/*******************************************************************************
 * Copyright (c) 2023. 山东新北洋信息技术股份有限公司 保留所有权利。
 *
 ******************************************************************************/


package online.xuping.thousandsOfWorlds.util;

import lombok.extern.slf4j.Slf4j;

import java.lang.reflect.Method;

@Slf4j
public final class EnumUtil {
    private EnumUtil() {
        throw new IllegalStateException("Utility class");
    }

    public static Object getEnumValue(Class clazz, Object code) {
        Object[] enumConstants = clazz.getEnumConstants();
        try {
            for (Object object : enumConstants) {
                //获取对象的公开方法，参数标识和方法名称
                Method codeMethod = clazz.getMethod("getCode");
                Method nameMethod = clazz.getMethod("getName");
                if (code.equals(codeMethod.invoke(object))) {
                    return nameMethod.invoke(object);
                }
            }
        } catch (Exception e) {
            log.error("获取异常", e);
        }
        return null;
    }
}
